package com.bms.client.service;

import com.bms.client.pojo.LunWen;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * 论文管理与检索表(LunWen)表服务接口类
 *
 * @author godmaker
 * @since 2021-03-16 15:49:16
 * @version 1.0
 */
public interface LunWenService {


    /**
     * 查询所有数据
     * @return  返回所有数据
     */
    Map<String, Object> chaXunAll();

    Map<String, Object> chaXunById(int id);

    Map<String, Object> xiaZai(HttpServletRequest request, HttpServletResponse response, String diZhi);




    /**
     * 查询未发表的所有数据
     * @return  返回所有未发表的论文数据
     */
    Map<String, Object> chaXunCaoGao(int page);





    /**
     * 通过ID查询单条数据
     *
     * @param lunWenLeiBie 类型
     * @return 实例对象
     */
    Map<String, Object> chaXunByLeiBie(String lunWenLeiBie);




    /**
     * 查询分页数据
     *
     * @param page 查询起始位置
     * @param page 查询条数
     * @return 对象列表
     */
    Map<String, Object> chaXunFenYe(int page);

    /**
     * 查询分页数据
     *
     * @param page 查询起始位置
     * @param tiMu, zuoZhe,faBiaoWeiZhi,lunWenLeiBie,faBiaoShiJianQiShi,faBiaoShiJianJieShu 查询条数
     * @return 对象列表
     */
    Map<String, Object> chaXunFenYe01(int page, String tiMu,String zuoZhe,
                                      String faBiaoWeiZhi,String lunWenLeiBie,
                                      String faBiaoShiJianQiShi,String faBiaoShiJianJieShu);



    /**
     * 新增数据
     *
     * @param lunWen 实例对象
     * @return 实例对象
     */

    Map<String, Object> xinZeng(LunWen lunWen, HttpServletRequest request, MultipartFile file);



    /**
     * 通过ID查询单条数据
     *
     * @param lunWen 实例对象
     * @return 实例对象
     */
    Map<String, Object> gengXinById(LunWen lunWen, HttpServletRequest request, MultipartFile file);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    Map<String, Object> shanChuById(String id);




//    Map<String,Object> chaXun(int index, String guanJianZi, String chaXunTiaoJian);




    Map<String,Object> lianHeChaXun(int index,String tiMu,String zuoZhe,
                                    String faBiaoWeiZhi,String lunWenLeiBie,
                                    String faBiaoShiJianQiShi,String faBiaoShiJianJieShu);


    /**
     * 根据模糊条件查询总个数
     *
     * @return 返回查询到的总个数
     */
    Map<String, Object> chaXunCount(int index);
    /**
     * 根据模糊条件查询总个数
     *
     * @return 返回查询到的总个数
     */
    Map<String, Object> chaXunCount01(int index, String tiMu,String zuoZhe,
                                      String faBiaoWeiZhi,String lunWenLeiBie,
                                      String faBiaoShiJianQiShi,String faBiaoShiJianJieShu);
}